看過超多新手都遇到一些光怪陸離的狀況。
然後絕大多數找不到bug或是bug被忽略其實都是php.ini的設定的問題。
所以我這邊也指出幾個「必要」去改的設定。
但所謂的「必要」也只是讓你了解這幾個設定,實際上要on還是off或其他的值請你自行斟酌。
display_errors
display_errors = On
是否在程式出error時顯示,開On的話,當程式遇到問題就會顯示錯誤的原因
開Off的話,你可能會得到Internal 500的畫面。
error_reporting
error_reporting = E_ALL & ~E_NOTICE
報錯時,顯示的錯誤級別設定
如果你想什麼鬼碗糕都看到,可以設成E_ALL
output_buffering
output_buffering = Off
輸出暫存,跟html的header有關的東西。
一堆session_start error或是header() error都跟這個設定有關。
很多時候很多人說為什麼我在本機寫的code都沒error
一到server就出錯?
那是因為你在php的程式碼前就做了輸出(例如echo或是秀了其他的html code)
然後可能你的output_buffering是設On或是4096
結果伺服器卻是設定off
我建議自己開發就設置Off吧!
自己先避掉header的問題。
date.timezone
date.timezone = asia/taipei
不要一直問為什麼你的時間永遠比人家慢8個小時……
你不指定時區是亞洲/台北就註定你在台灣就是比人家慢8個小時………
對!如果你主機是給日本人用自己知道啊!
register_globals
#register_globals = ...
如果你看到這個東西,請你先升級你的php版本吧!
如果你不升級,請你把他設成off吧。
不然$_POST跟 $_GET還有$_REQUEST會很開心的………直接注入你的變數找碴。
以上就是幾個比較重要的必須了解的設定。
其他還有很多就自己細細研究
but……不要問我:php.ini在那裡?
<?php
phpinfo();
他會告訴你在那裡。
碗糕
我不喜歡吃碗糕 可以看到牛排嗎
如果你想什麼鬼牛排都看到,你可以設定成
error_reporting = E_Beef
不過你可能會遇到php開不起來的鬼狀況……(我不知道啦!沒這樣玩過)
還是會有藏彩蛋!
SAM趕快去試試看
這是密技嗎? @@